#include<bits/stdc++.h>
using namespace std;
int n;
struct as{
	int idd,flag,num;
	int a,b,c,d,e;
}e[1010];
as q1,q2;
void IF(string s){
	q1=q2;
	int l=s.size();
	int sum1=0,sum2=0;
	for(int i=0;i<l;i++){
		if(s[i]=='.')sum1++;
		else if(s[i]==':')sum2++;
		if(s[i]=='.'&&s[i-1]=='.'){
			q1.num=-1;
			return;
		}
		if(s[i]==':'&&i==l-1){
			q1.num=-1;
			return;
		}
		if(s[i]==':'&&s[i-1]=='.'){
			q1.num=-1;
			return;
		}
	} 
	if(sum1!=3||sum2!=1){
		q1.num=-1;
		return;
	}
	s+=":";
	int now=0;
	bool a1=0,a2=0,a3=0,a4=0,a5=0;
	for(int i=now;s[i]!='.';i++,now=i+1){
		if(!q1.a&&s[i]=='0'&&(s[i+1]>='0'&&s[i+1]<='9')){
			q1.num=-1;
			return;
		}
		if(q1.a>255){
			q1.num=-1;
			return;
		}
		q1.a=q1.a*10+s[i]-'0';
		a1=1;
	}
	for(int i=now;s[i]!='.';i++,now=i+1){
		if(!q1.b&&s[i]=='0'&&(s[i+1]>='0'&&s[i+1]<='9')){
			q1.num=-1;
			return;
		}
		if(q1.b>255){
			q1.num=-1;
			return;
		}
		q1.b=q1.b*10+s[i]-'0';
		a2=1;
	}
	for(int i=now;s[i]!='.';i++,now=i+1){
		if(!q1.c&&s[i]=='0'&&(s[i+1]>='0'&&s[i+1]<='9')){
			q1.num=-1;
			return;
		}
		if(q1.c>255){
			q1.num=-1;
			return;
		}
		q1.c=q1.c*10+s[i]-'0';
		a3=1;
	}
	for(int i=now;s[i]!=':';i++,now=i+1){
		if(!q1.d&&s[i]=='0'&&(s[i+1]>='0'&&s[i+1]<='9')){
			q1.num=-1;
			return;
		}
		if(q1.d>255){
			q1.num=-1;
			return;
		}
		q1.d=q1.d*10+s[i]-'0';
		a4=1;
	}
	for(int i=now;i<l;i++){
		if(!q1.e&&s[i]=='0'&&(s[i+1]>='0'&&s[i+1]<='9')){
			q1.num=-1;
			return;
		}
		if(q1.e>65535){
			q1.num=-1;
			return;
		}
		q1.e=q1.e*10+s[i]-'0';
//		cout<<q1.e<<" "<<s[i]<<endl;
		a5=1;
	}
	if(a1==0||a5==0||a5==0||a5==0||a5==0){
		q1.num=-1;
		return;
	}
	if(q1.a>255||q1.b>255||q1.c>255||q1.d>255||q1.e>65535){
		q1.num=-1;
		return;
	}
	return;
}
void In(){
	scanf("%d",&n);
	q2.a=0,q2.b=0,q2.c=0,q2.d=0,q2.e=0,q2.flag=0,q2.idd=0,q2.num=0;
	for(int i=1;i<=n;i++){
		string t1,t2;
		cin>>t1>>t2;
//		if(i==924)cout<<"A:"<<t2<<endl;
		if(t1=="Server"){
			IF(t2);
			e[i]=q1;
			e[i].flag=1;
			e[i].idd=i;
			if(e[i].num!=-1){
//				cout<<e[i].a<<" "<<e[i].b<<" "<<e[i].c<<" "<<e[i].d<<" "<<e[i].e<<endl;
				for(int j=1;j<i;j++){
//					cout<<e[j].flag<<" "<<e[j].num<<endl;
					if(e[j].flag==1&&e[j].num!=-1){
//						cout<<e[j].a<<" "<<e[j].b<<" "<<e[j].c<<" "<<e[j].d<<" "<<e[j].e<<endl;
						if(e[i].a==e[j].a&&e[i].b==e[j].b&&e[i].c==e[j].c&&e[i].d==e[j].d&&e[i].e==e[j].e){
							e[i].num=-2;
							break;
						}
					}
				}
			}
		}else{
			IF(t2);
			e[i]=q1;
			e[i].flag=2;
			e[i].idd=i;
			if(e[i].num!=-1){
				for(int j=1;j<i;j++){
					if(e[j].flag==1&&e[j].num!=-1){
						if(e[i].a==e[j].a&&e[i].b==e[j].b&&e[i].c==e[j].c&&e[i].d==e[j].d&&e[i].e==e[j].e){
							e[i].num=j;
							break;
						}
					}
				}
				if(!e[i].num)e[i].num=-2;
			}
		}
	}
}
void Work(){
	for(int i=1;i<=n;i++){
		if(e[i].flag==1){
			if(e[i].num==0)printf("OK\n");
			else if(e[i].num==-1)printf("ERR\n");
			else if(e[i].num==-2)printf("FAIL\n");
		}else{
			if(e[i].num>0)printf("%d\n",e[i].num);
			else if(e[i].num==-1)printf("ERR\n");
			else if(e[i].num==-2)printf("FAIL\n");
		}
//		if(i==924){
//			cout<<i<<"-"<<e[i].a<<" "<<e[i].b<<" "<<e[i].c<<" "<<e[i].d<<" "<<e[i].e<<endl;
//		}
	}
} 
int main(){
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	In();
	Work();
	return 0;
}

